//package com.yxl.handler;
//
//import com.alibaba.fastjson.JSONObject;
//import com.yxlcommon.common.pojo.User;
//import com.yxl.protocol.packet.SingleMessageCommand;
//import com.yxl.utils.SessionUtils;
//import io.netty.buffer.ByteBuf;
//import io.netty.channel.Channel;
//import io.netty.channel.ChannelHandler;
//import io.netty.channel.ChannelHandlerContext;
//import io.netty.channel.SimpleChannelInboundHandler;
//import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
//import lombok.extern.slf4j.Slf4j;
//
//import java.nio.charset.StandardCharsets;
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * @author: yxl
// * @since: 2022-03-27
// **/
//@Slf4j
//@ChannelHandler.Sharable
//public class SingleMessageHandler extends SimpleChannelInboundHandler<SingleMessageCommand> {
//    @Override
//    protected void channelRead0(ChannelHandlerContext ctx, SingleMessageCommand msg) throws Exception {
//        String message;
//        Channel channel = SessionUtils.getChannel(msg.getToUserId());
//        if (channel != null & SessionUtils.hasLogin(channel)){
//            message = msg.getMessage();
//        }else {
//            message = msg.getMessage();
//        }
//        assert channel != null;
//        User toUser = SessionUtils.getUser(channel);
//        ByteBuf buf = getByteBuf(ctx, message, toUser);
//        channel.writeAndFlush(new TextWebSocketFrame(buf));
//
//    }
//
//    public ByteBuf getByteBuf(ChannelHandlerContext ctx, String message, User toUser) {
//        ByteBuf byteBuf = ctx.alloc().buffer();
//        User fromUser = SessionUtils.getUser(ctx.channel());
//        JSONObject data = new JSONObject();
//        data.put("type", 2);
//        data.put("status", 200);
//        JSONObject params = new JSONObject();
//        params.put("message", message);
//        params.put("toUser", toUser);
//        data.put("params", params);
//        data.put("fromUser",fromUser);
//        byte[] bytes = data.toJSONString().getBytes(StandardCharsets.UTF_8);
//        byteBuf.writeBytes(bytes);
//        return byteBuf;
//    }
//}
